package com.service;

import java.util.List;
import java.util.Set;
import javax.servlet.http.Cookie;
import com.pojo.User;
import com.util.Updateself;

public interface IUserService {

	/**
	 * 创建用户
	 * 
	 * @param user
	 */
	public User createUser(User user);

	/**
	 * 获取数据总数
	 * 
	 * @return
	 */
	public int getCounts();

	/**
	 * 修改密码
	 * 
	 * @param userId
	 * @param newPassword
	 */
	public void changePassword(int userId, String newPassword);

	/**
	 * 添加用户-角色关系
	 * 
	 * @param userId
	 * @param roleIds
	 */
	public void correlationRoles(int userId, int... roleIds);

	/**
	 * 移除用户-角色关系
	 * 
	 * @param userId
	 * @param roleIds
	 */
	public void uncorrelationRoles(int userId, int... roleIds);

	/**
	 * 根据用户名查找用户
	 * 
	 * @param username
	 * @return
	 */
	public User findByUsername(String username);

	public Set<String> findRoles(String username);

	/**
	 * 根据用户名查找其权限
	 * 
	 * @param username
	 * @return
	 */
	public Set<String> findPermissions(String username);

	/**
	 * 分页查询
	 * 
	 * @param page
	 *            查询第几页
	 * @param groups
	 *            每组个数
	 * @return
	 */
	public List<User> getallusers(int page, int groups);

	/**
	 * 通过userid更新用户名和是否锁定
	 * 
	 * @param u
	 * @return
	 */
	public User updateuser(User u);

	/**
	 * 通过username更新密码
	 * 
	 * @param u
	 * @return
	 */
	public User updatepwd(User u);

	/**
	 * 通过username更改头像和用户名
	 * 
	 * @param u
	 * @return
	 */
	public void updateself(Updateself updateself);

	public void deleteuser(int userid);

	public User getUser(int userid);

	public void deleteuserroles(int userid);

	/**
	 * 读取cookie
	 * @param cookies
	 * @param key
	 * @return
	 */
	public String getCookie(Cookie[] cookies,String key);
}
